Electronic spreadsheets have become well known tools for manipulating information with a computer. A conventional (non-electronic) spreadsheet typically consists of numeric data arranged in rows and columns. A spreadsheet for tabulating expenses, for example, might associate each row with a different expense type, and each column with a different time period. The spreadsheet would typically include row totals showing the total of each expense type over time, and column totals showing the total expense for each time period.
An electronic spreadsheet is a computer program for creating, modifying and displaying spreadsheets. Like its non-electronic counterpart, a conventional electronic spreadsheet organizes data in a two-dimensional pattern of rows and columns. Each intersection of a row and a column is termed a cell. The electronic spreadsheet can store numbers and data strings in each cell, as well as formulas for computing a value based upon values contained in other cells.
When the electronic spreadsheet program displays a spreadsheet, either on a computer screen or in a printed report, the electronic spreadsheet does not display the data in the cell itself. Rather, the electronic spreadsheet interprets the contents of each cell, and displays the results, For example, if a cell contains numeric or string data, then such data is displayed, modified by any attribute information associated with the cell. Attribute information may specify the number of decimal places for numeric values, the format for displaying a date value, etc. A formula may also be regarded as an attribute of a cell. When a cell contains a formula, the electronic spreadsheet evaluates the formula, and displays the result, according to whatever additional attribute information is associated with the cell.
In prior electronic spreadsheets, data specifying the attributes associated with a cell (e.g., formats, equations, etc.), or pointers to such data, has been stored in the cell itself. The principle reason for this has been execution speed, so that the spreadsheet program can immediately locate the required attributes whenever a cell is to be displayed. However the disadvantage of storing attribute information in cells is that a significant amount of storage is required. This is particularly the case where a particular attribute applies to all cells in a range. In a conventional spreadsheet program, each cell in the range must contain a reference to the attribute.